package com.bi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bi.entity.DataComponentField;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据组件字段Mapper接口
 * 
 * @author BI Platform Team
 * @since 1.0.0
 */
@Mapper
public interface DataComponentFieldMapper extends BaseMapper<DataComponentField> {

    /**
     * 根据组件ID查询字段配置
     * 
     * @param componentId 组件ID
     * @return 字段配置列表
     */
    List<DataComponentField> selectByComponentId(@Param("componentId") Long componentId);

    /**
     * 根据组件ID删除字段配置
     * 
     * @param componentId 组件ID
     * @return 删除数量
     */
    int deleteByComponentId(@Param("componentId") Long componentId);

    /**
     * 批量插入字段配置
     * 
     * @param fields 字段配置列表
     * @return 插入数量
     */
    int batchInsert(@Param("fields") List<DataComponentField> fields);

    /**
     * 更新字段排序
     * 
     * @param componentId 组件ID
     * @param fieldId 字段ID
     * @param sortOrder 排序顺序
     * @return 更新数量
     */
    int updateSortOrder(@Param("componentId") Long componentId, 
                       @Param("fieldId") Long fieldId, 
                       @Param("sortOrder") Integer sortOrder);
}